<?php
class Produtos_do_pedido {
  private $id_pedido;
  private $id_produto;
  private $qtd_produto;
  private $vlr_unitario;
  
  public function __construct($sFiltro = "", $sOrdem = "id_pedido") {
    global $oDB;
    $sSQL = "SELECT id_pedido, id_produto, qtd_produto, vlr_unitario FROM produtos_do_pedido";
    if ($sFiltro) {
      $sSQL .= " WHERE ($sFiltro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    if (!empty($sFiltro)) {
      $oRes = $oDB->Execute($sSQL);
      if ($oRes == false) {
        trigger_error($oDB->ErrorMsg());
      } else {
        $this->id_pedido = $oRes->fields['id_pedido'];
        $this->id_produto = $oRes->fields['id_produto'];
        $this->qtd_produto = $oRes->fields['qtd_produto'];
        $this->vlr_unitario = $oRes->fields['vlr_unitario'];
      }
    }
  }
  
  public function getId_pedido() {
    return $this->id_pedido;
  }
  public function setId_pedido($valor) {
    $this->id_pedido = $valor;
  }
  
  public function getId_produto() {
    return $this->id_produto;
  }
  public function setId_produto($valor) {
    $this->id_produto = $valor;
  }
  
  public function getQtd_produto() {
    return $this->qtd_produto;
  }
  public function setQtd_produto($valor) {
    $this->qtd_produto = $valor;
  }
  
  public function getVlr_unitario() {
    return $this->vlr_unitario;
  }
  public function setVlr_unitario($valor) {
    $this->vlr_unitario = $valor;
  }
  
  public function atualizar() {
    global $oDB;
    $campos = array(
      'id_produto' => $this->id_produto,
      'qtd_produto' => $this->qtd_produto,
      'vlr_unitario' => $this->vlr_unitario,
    );
    if ($this->id_pedido > 0) {
      $oDB->AutoExecute('produtos_do_pedido', $campos, 'UPDATE', 'id_pedido = '.intval($this->id_pedido));
    } else {
      $sSQL = 'SELECT MAX(id_pedido) as id_pedido FROM pedidos';
      $oRes = $oDB->execute($sSQL);

      $campos['id_pedido'] = $oRes->fields['id_pedido'];

      $sSQL = 'SELECT vlr_produto FROM produtos WHERE id_produto = '. $this->id_produto;
      $oRes = $oDB->execute($sSQL);

      $campos['vlr_unitario'] = $oRes->fields['vlr_produto'];

      $oDB->AutoExecute('produtos_do_pedido', $campos, 'INSERT');
    }
  }
  public function excluir($aIds) {
    global $oDB;
    $sIds = implode(',', $aIds);
    $sSQL = 'DELETE FROM produtos_do_pedido WHERE id_pedido IN ('. $sIds .')';
    $oRes = $oDB->execute($sSQL);
    if ($oRes != false) {
      return true;
    }
  }
  public static function listar($filtro = "", $sOrdem = "id_pedido") {
    global $oDB;
    $lista = array();
    $sSQL = "SELECT id_pedido, id_produto, qtd_produto, vlr_unitario FROM produtos_do_pedido";
    if ($filtro) {
      $sSQL .= " WHERE ($filtro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    $oRes = $oDB->Execute($sSQL);
    if ($oRes == false) {
      trigger_error($oDB->ErrorMsg());
    } else {
      while (!$oRes->EOF) {
        $linha = new self();
        $linha->id_pedido = $oRes->fields['id_pedido'];
        $linha->id_produto = $oRes->fields['id_produto'];
        $linha->qtd_produto = $oRes->fields['qtd_produto'];
        $linha->vlr_unitario = $oRes->fields['vlr_unitario'];
        $lista[] = $linha;
        
        $oRes->MoveNext();
      }
    }
    return $lista;
  }
  
}
?>
